
import sys
from PyQt5.QtWidgets import (QWidget, QLabel,
                             QLineEdit, QApplication)


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        self.lbl = QLabel(self)
        # 创建一个QLineEdit控件，用于输入文本
        qle = QLineEdit(self)

        # 将QLineEdit控件移动到窗口中的指定位置 (x=60, y=100)
        qle.move(60, 100)
        
        # 将QLabel控件移动到窗口中的指定位置 (x=60, y=40)
        self.lbl.move(60, 40)

        # 连接QLineEdit的textChanged信号到onChanged槽函数
        # 当QLineEdit中的文本发生变化时，onChanged函数将被调用
        qle.textChanged[str].connect(self.onChanged)

        # 设置窗口的初始位置和大小 (x=300, y=300, width=350, height=250)
        self.setGeometry(300, 300, 350, 250)
        
        # 设置窗口的标题为 'QLineEdit'
        self.setWindowTitle('QLineEdit')
        
        # 显示窗口
        self.show()

    def onChanged(self, text):
        # 当QLineEdit中的文本发生变化时，更新QLabel的文本
        self.lbl.setText(text)
        
        # 调整QLabel的大小以适应新的文本内容，如果没有调整，那就只有第一个字母被显示
        self.lbl.adjustSize()


def main():
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()